// SPU模块的所有TS类型

// 接口响应数据中的统一内容类型
interface ResData {
    code: number,
    message: string,
    ok: string
}

// SPU数据对象的类型
export interface SpuObj {
    id?: number,
    spuName: string,
    description: string,
    category3Id: string | number, //三级分类id
    tmId: string | number, // 品牌id
    // 获取数据时，类型为 null；新增或修改数据时，类型不为null
    spuSaleAttrList: null | SpuSaleAttrObj[],
    spuImageList: null | SpuImgObj[],
}
// 获取Spu数据的接口的响应数据类型
export interface HasSpuResData extends ResData {
    data: {
        records: SpuObj[],
        total: number,
        current: number,
        searchCount: boolean,
        pages: number
    }
}

// 所有品牌数据的类型
export interface TrademarkObj {
    id?: number,
    tmName: string,
    logoUrl: string
}
// 获取品牌接口返回的数据类型
export interface TrademarkResData extends ResData {
    data: TrademarkObj[]
}

// 商品图片对象的类型
export interface SpuImgObj {
    id?: number,
    spuId?: number,
    imgName?: string,
    imgUrl?: string,
    name?: string,
    url?: string
}
// 获取图片接口的返回数据类型
export interface SpuImgResData extends ResData {
    data: SpuImgObj[]
}

// 销售属性值对象的类型
export interface SpuSaleAttrValueObj {
    id?: number,
    spuId?: number,
    baseSaleAttrId: number,
    saleAttrValueName: string,
    saleAttrName?: string,
    isChecked?: null
}
// 销售属性对象的类型
export interface SpuSaleAttrObj {
    id?: number,
    spuId?: number,
    baseSaleAttrId: string | number,
    saleAttrName: string,
    spuSaleAttrValueList: SpuSaleAttrValueObj[],
    flag?: boolean,
    inputValue?: string,
    saleAttrIdAndValueId?: string
}
// 获取销售属性接口的返回数据类型
export interface SpuSaleAttrResData extends ResData {
    data: SpuSaleAttrObj[]
}

// 已有销售属性对象的类型
export interface HasSaleAttrObj {
    id: number,
    name: string
}
// 获取全部销售属性接口的返回数据类型
export interface HasSaleAttrResData extends ResData {
    data: HasSaleAttrObj[]
}

// Sku属性值对象类型
export interface SkuAttrValueObj {
    attrId: string | number, // 属性id
    valueId: string | number // 属性值id
}
// Sku销售属性值对象类型
export interface SkuSaleAttrValueObj {
    saleAttrId: string | number, // 属性id
    saleAttrValueId: string | number // 属性值id
}
// 新增Sku的对象参数数据类型
export interface SkuAddObj {
    category3Id: string | number, // 三级分类Id
    spuId: string | number,
    tmId: string | number,
    skuName: string,
    price: string | number,
    weight: string | number,
    skuDesc: string,
    skuAttrValueList: SkuAttrValueObj[], // 平台属性的收集
    skuSaleAttrValueList: SkuSaleAttrValueObj[], // 销售属性
    skuDefaultImg: string
}
// 获取Sku列表接口返回数据的类型
export interface SkuListResData extends ResData {
    data: SkuAddObj[]
}  